package org.ladybug.service.admin;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Expression;
import org.ladybug.dao.DAOService;
import org.ladybug.dao.persistence.Utente;
import org.skins.io.HexReader;
import org.springframework.orm.hibernate3.HibernateTemplate;

public class AdminServiceImpl implements AdminService {

	
	private DAOService daoService ;

	public DAOService getDaoService() {
		return daoService;
	}

	public void setDaoService(DAOService daoService) {
		this.daoService = daoService;
	}
	
	/* (non-Javadoc)
	 * @see org.ladybug.service.AdminService#insertNewUtente(org.ladybug.dao.persistence.Utente)
	 */
	public void insertNewUtente(Utente utente){
		HibernateTemplate hibernateTemplate = getHibernateTemplate();
		hibernateTemplate.save(utente);
	}
	
	public void sospendiUtente(Utente utente){
		HibernateTemplate hibernateTemplate = getHibernateTemplate();
		utente.setIsSospeso(true);
		hibernateTemplate.saveOrUpdate(utente);
	}
	
	public Utente findUtenteByNickname(Utente utente){
		Criterion c = Expression.eq("nickname", utente.getNickname());
		DetachedCriteria criteria = DetachedCriteria.forClass(Utente.class);
		criteria.add(c);
		List l =  getHibernateTemplate().findByCriteria(criteria);
		if(l.size()==0){
			return null;
		}
		return (Utente) l.get(0);
	}
	


	private HibernateTemplate getHibernateTemplate() {
		HibernateTemplate hibernateTemplate = daoService.getHibernateTemplate();
		return hibernateTemplate;
	}
}
